2
תגובות

MySQL GROUP BY

פתח ldbrgr ,
זה קצת מסובך להסביר אני מקווה שתבינו.

הטבלה שלי נראת ככה:

id    |title      |list_id   
1   |power    |0
2   |goose    |0
3   |Romeo    |0
4   |riles      |0
5   |pros1    |1
6   |pros2    |1
7   |loop1    |2
8   |loop2    |2
9   |loop3    |2
10    |indoor   |0


אני רוצה לשלוף את כל השורות לפי list_id יחודי, אבל אם השורה לא בlist_id (כאילו list_id=0) אז שישלוף גם אותם.

השאילתא
SELECT * FROM `tbl` GROUP BY `list_id`;

מחזירה את זה:
id    |title      |list_id   
1   |power    |0
5   |pros1    |1
9   |loop3    |2


אני רוצה שאילתא שתחזיר את כל השורות שהlist_id=0 ושהlist_id יחודי.

זה כאילו שתי שאילתות..
SELECT * FROM `tbl` WHERE `list_id` <> 0 GROUP BY `list_id`;
SELECT * FROM `tbl` WHERE `list_id` = 0;


והתוצאה צריכה להיות ככה:
id    |title      |list_id   
1   |power    |0
2   |goose    |0
3   |Romeo    |0
4   |riles      |0
5   |pros1    |1
7   |loop1    |2
10    |indoor   |0


איך אני עושה את זה בשאילתא אחת?

2 תשובות

avatar ענה ldbrgr ב 31 לינואר 2015 #

אחרי שחשבתי על זה קצת.. מצאתי תשובה. תודה!!

avatar ענה soogo ב 01 לפברואר 2015 #

פשוט שים AND